/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package tsb.UI.consola;

/**
 *
 * @author Kapica
 */
import java.util.*;
public class Nodo {
    
    private boolean hoja; //para saber si es hoja. Si es hoja es comando
    private String comando;//nombre de comando
    private ArrayList arrayHijos;//Para guardar los nodos hijos   
    private Nodo padre;//guarda la referencia al padre

    public Nodo(boolean hoja, String comando,Nodo p) {
        this.hoja = hoja;
        this.comando = comando;
        arrayHijos = new ArrayList();
        padre=p;
    }

    public ArrayList getArrayHijos() {
        return arrayHijos;
    }

    public String getComando() {
        return comando;
    }

    public boolean isHoja() {
        return hoja;
    }

    public void addNodo(Nodo no) {
        arrayHijos.add(no);
    }
    
    
    public void setComando(String comando) {
        this.comando = comando;
    }

    public void setHoja(boolean hoja) {
        this.hoja = hoja;
    }

    public Nodo getPadre() {
        return padre;
    }

    public void setPadre(Nodo padre) {
        this.padre = padre;
    }
    
    public String toStrign()
    {
        String cad= "Comando= "+this.comando+", Hoja= "+this.hoja;
        
        if(this.getPadre()==null)
        {
            cad = cad+", Nodo Padre= null";
        }
        else
        {
             cad= cad+", Nodo Padre= "+this.padre.getComando();
        }
        return cad;
    }
    
    public String comandosHijos()
    {
        Iterator iter= this.arrayHijos.iterator();
        
        String cad="\n";
        while(iter.hasNext())
        {
            Nodo aux=(Nodo)iter.next();
            
            cad=cad+aux.getComando()+"\n";
        }
        return cad;
        
    }
    
    public boolean esHijo(String comando)
    {
        Iterator iter=this.arrayHijos.iterator();
        
        while(iter.hasNext())
        {
            Nodo aux=(Nodo)iter.next();
            
            if(aux.getComando().compareTo(comando)==0)
            {
                return true;
            }
        }
        return false;
    }
    
    public boolean esPadre(String comando)
    { if(this.getPadre()!=null)
      {
         if(this.padre.getComando().compareToIgnoreCase(comando)==0)
         {
             return true;
         }
         return false;
        }
      return false;
    }
    
    public boolean esComando(String Comando)
    {
        return this.hoja;
    }
    
    




    }






